In.java
package org.codefilarete.stalactite.query.model.operator;
import org.codefilarete.stalactite.query.model.ValuedVariable;
import org.codefilarete.stalactite.query.model.Variable;
import org.codefilarete.tool.collection.Arrays;
import org.codefilarete.stalactite.query.model.ConditionalOperator;
/**
* Represents a "in" comparison
*
* @author Guillaume Mary
*/
public class In<O> extends ConditionalOperator<O, Iterable<O>> {
private Variable<Iterable<O>> value;
public In() {
}
public In(Variable<Iterable<O>> value) {
this.value = value;
}
public In(Iterable<O> value) {
this(new ValuedVariable<>(value));
}
public In(O[] value) {
this(Arrays.asList(value));
}
public Variable<Iterable<O>> getValue() {
return value;
}
@Override
public void setValue(Variable<Iterable<O>> value) {
this.value = value;
}
@Override
public boolean isNull() {
return this.value instanceof ValuedVariable && ((ValuedVariable<Iterable<O>>) this.value).getValue() == null;
}
public InIgnoreCase ignoringCase() {
return new InIgnoreCase((In<String>) this);
}
}